package cn.bugstack.ai.domain.agent.model.entity;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 执行命令实体
 * 
 * 【作用】封装 Agent 执行所需的所有输入参数
 * 【流程位置】从 Controller 构建，传递给调度服务和执行策略
 * 
 * 使用示例：
 * ExecuteCommandEntity entity = ExecuteCommandEntity.builder()
 * .aiAgentId("2") // 使用哪个 Agent
 * .message("我想学Python") // 用户输入
 * .sessionId("session_xxx") // 会话标识
 * .maxStep(5) // 最大执行步骤
 * .build();
 *
 * @author xiaofuge bugstack.cn @小傅哥
 *         2025/7/27 16:46
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ExecuteCommandEntity {

    /** Agent ID - 标识使用哪个智能体（对应数据库 ai_agent 表的 agent_id） */
    private String aiAgentId;

    /** 用户消息 - 用户的输入内容（如"我想学Python"、"帮我写一篇技术文章"） */
    private String message;

    /** 会话 ID - 用于追踪同一个对话的多轮交互，便于日志关联和上下文管理 */
    private String sessionId;

    /** 最大执行步骤数 - 防止无限循环，限制 Agent 的执行次数（默认 3-5 步） */
    private Integer maxStep;

}
